/**
 * 分页参数转换工具
 * 用于统一处理前后台分页参数的不一致问题
 */

/**
 * 将前台分页参数转换为后台分页参数
 * @param {Object} frontParams 前台分页参数
 * @param {number} frontParams.current 当前页（从1开始）
 * @param {number} frontParams.pageSize 每页大小
 * @returns {Object} 后台分页参数
 */
export function convertToBackendPagination(frontParams) {
  return {
    page: (frontParams.current || 1) - 1,  // 转换为0开始
    size: frontParams.pageSize || 20
  };
}

/**
 * 将后台分页响应转换为前台分页数据
 * @param {Object} backendResponse 后台分页响应
 * @returns {Object} 前台分页数据
 */
export function convertToFrontendPagination(backendResponse) {
  if (!backendResponse) {
    return {
      content: [],
      total: 0,
      current: 1,
      pageSize: 20,
      totalPages: 0
    };
  }

  return {
    content: backendResponse.content || [],
    total: backendResponse.totalElements || 0,
    current: Math.max(1, (backendResponse.currentPage || 1)),  // 确保至少为1
    pageSize: backendResponse.size || 20,
    totalPages: backendResponse.totalPages || 0,
    hasNext: backendResponse.hasNext || false,
    hasPrevious: backendResponse.hasPrevious || false
  };
}
